草庐IT

CountDownLatch和ExecutorService 线程池cachedThreadPool.submit

全部标签

java - 仅使用 JDK (6) 提供的类来改进该代码的方法? (并发、线程安全)

(初步说明:也许这更适合codereview?)编辑Answertoself;我相信这个答案涵盖了我所有的需求/问题,当然,欢迎发表评论。原问题留在下方以供引用。你好,此处感兴趣的是.getSources()方法。此方法旨在返回给定Locale的消息源列表。此方法的两个核心数据结构是sources和failedLookups,请参阅注释代码。.getSources()的这种特殊实现只能返回空列表或单元素列表,具体取决于原型(prototype)是哪个tryAndLookup()方法:protectedabstractMessageSourcetryAndLookup(finalLoca

java - 多线程无法正常工作

编辑这篇文章与我在学校的家庭作业有关,该作业要求我依靠swing来显示我的线程和用于阻塞的boolean标志。我的应用程序创建了一堆“作业”对象,每个对象都包含一个线程。每个工作都属于一个生物。一个生物可以拥有多项工作,但在任何给定时刻只能执行其中一项。我的线程使用2个boolean标志来判断它是否应该运行,称为“killFlag”和“goFlag”。它指定它所属的生物为“目标”。每个目标都有一个boolean值“isWorking”来表示它是否正忙于另一项工作。这是每个作业应该运行的线程:publicvoidrun(){longtime=System.currentTimeMilli

java - 有没有办法使用 JVMTI 生成定期的 java 线程转储?

在java中有多种生成线程转储的方法。我想使用JVMTI(CAPI)来生成它,以评估它对正在运行的JVM的性能影响。(我知道jstack和JMX;这个问题通常不是关于获取线程转储,而是关于使用JVMTIAPI)。我的代码基于thisblogpost.在那里,java代理附加到SIGQUIT信号。我想避免这种情况,因为这与JVM用于将线程转储写入标准输出的信号相同。我想避免这种口是心非。换句话说,我想附加到不同的信号,或者找到一种方法让代理定期生成线程转储。 最佳答案 Inthere,thejavaagentattachestothe

java - "system-dependent default"线程池是什么?

来自AsynchronousFileChannel应用程序接口(interface):WhenanAsynchronousFileChanneliscreatedwithoutspecifyingathreadpoolthenthechannelisassociatedwithasystem-dependentdefaultthreadpoolthatmaybesharedwithotherchannels.我没有在其他地方看到过这个术语,也没有通过网络搜索找到任何具体的解释。系统相关的默认线程池到底是什么?它有什么特点?它们在系统之间有何不同? 最佳答案

java - AWS Lambda - 如果我启动一个线程,当 Lambda 卡住/解冻时会发生什么?

我有一个启动后台线程的基于Java的AWSLambda函数。该线程运行一个计划任务,该任务向外部服务报告指标。根据theLambdadocs,Lambda函数在完成执行后会“卡住”一段时间,然后可以“解冻”并重新使用ifthefunctionistriggeredagain在短期内。我的问题是发生这种情况时后台线程会发生什么。例如,我在包含我的处理程序函数的类的构造函数中启动了我的后台线程。根据文档,处理函数范围之外的所有变量都将保持初始化状态,所以我的线程应该仍然存在,但它还会运行吗?我的线程在后台运行这一事实会阻止Lambda首先完成执行吗?或者它是否会超过五分钟的限制,因为它还没

java - JBoss 和 ActiveMQ 之间挂起的 Socket.read() 线程

鉴于我的Java应用程序是部署到JBoss(4.0.4GA)的WAR发布和订阅ActiveMQ(5.6.0)实例Java应用使用ApacheCamel(2.10.3)与ActiveMQ进行所有集成(生产和消费)JBoss和ActiveMQ在他们自己的(CentOS5.6Final)四核虚拟服务器上,每个虚拟服务器都在不同的物理服务器上我有一个线程挂起问题,在我的线程转储中看到以下内容:java.net.SocketInputStream.socketRead0(NativeMethod)java.net.SocketInputStream.read(SocketInputStream.

java - 交替运行两个线程的最佳方式?

更新:请参阅此问题的底部以获得完整答案。我想开一个副线程,让我的主线程和我的副线程交替进行操作(不是,我不想把所有的操作都放在主线程里,是为了单元测试)。我想出了两个不同的解决方案,我不知道哪个是最好的,我对第一个有疑问:使用交换器我想出了一些使用Exchanger的东西(虽然我不想只交换一个对象)。@TestpublicvoidlaunchMyTest(){/***Ananonymousclasstosetsomevariablesfromadifferentthread*/classThreadTestextendsThread{//declaresomevariousattrib

java - JVM 核心线程

在我的机器上启动一个JVM实例时,一个简单的类在main()中运行无限sleep,我在JVM中看到四个关键线程(除了主线程):附加监听器引用处理程序终结器信号调度器销毁JavaVM我很想了解每个核心JVM线程的用途。通过快速的互联网搜索,我发现了这些线程的以下详细信息:AttachListener:动态附加有一个附加监听器线程目标JVM。这是一个线程,当第一个发生附加请求。SignalDispatcher:当操作系统向JVM发出信号时,信号调度线程将信号传递给适当的处理程序。ReferenceHandler:高优先级线程入队挂起引用。GC创建一个简单的引用链接列表需要处理,这个线程快速

java - ExecutorService.shutdownNow() 不关闭线程

我正在运行一个高度并发的Java程序。当许多线程向执行程序服务提交任务时,主线程会在某个时刻调用ExecutorService.shutdownNow()。执行此操作后,我希望:执行者服务不会接受额外的任务执行者服务的队列清晰其余运行的worker被中断,也就是说,如果他们正确管理InterruptedException和/或显式检查Thread.currentThread().isInterrupted()由于我处于以下情况:执行程序服务由于ExecutorService.shutdownNow()而“关闭”,但并未关闭,即ExecutorService.awaitTerminati

java - 如何使用 java 多线程解压巨大的文件夹 - 首选 java8?

引用:http://www.pixeldonor.com/2013/oct/12/concurrent-zip-compression-java-nio/我正在尝试解压5GB的压缩文件,平均需要大约30分钟,这对我们的应用程序来说很长,我正在努力减少时间。我尝试了很多组合,更改了缓冲区大小(默认情况下我的写入block为4096字节),更改了NIO方法、库,所有结果都非常相同。仍然没有尝试的一件事是将压缩文件按block拆分,因此通过多线程block读取它。代码片段是:privatestaticExecutorServicee=Executors.newFixedThreadPool(